<!DOCTYPE html>
<html class="client-nojs skin-theme-clientpref-os citizen-feature-autohide-navigation-clientpref-1 citizen-feature-image-dimming-clientpref-0 citizen-feature-pure-black-clientpref-0 citizen-feature-custom-font-size-clientpref-standard citizen-feature-custom-width-clientpref-standard citizen-feature-performance-mode-clientpref-1 citizen-header-position-left citizen-header-position-mobile-bottom" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>RNode EEPROM</title>
<script id="mwoffliner-jsConfigVars">
document.documentElement.classList.replace('client-nojs', 'client-js')
RLCONF = {"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"RNode_EEPROM","wgTitle":"RNode EEPROM","wgCurRevisionId":2521,"wgRevisionId":0,"wgArticleId":8,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["RNode"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"RNode_EEPROM","wgRelevantArticleId":8,"wgIsProbablyEditable":false,"wgRelevantPageIsProbablyEditable":false,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"all","wgConfirmEditCaptchaNeededForGenericEdit":false,"wgMFDisplayWikibaseDescriptions":{"search":false,"nearby":false,"watchlist":false,"tagline":false},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"zimRelativeFilePath":"./"}
RLSTATE = {"user.options":"loading","site.styles":"ready","noscript":"ready","skins.citizen.styles":"ready","skins.citizen.codex.styles":"ready","skins.citizen.icons":"ready"}
RLPAGEMODULES = ["jquery","mediawiki.base","mediawiki.page.ready"]
;(RLQ = window.RLQ || []).push(function () {
mw.config.set(RLCONF)
mw.loader.state(RLSTATE)
mw.loader.load(RLPAGEMODULES)
;(mw.loader.impl || mw.loader.implement)(function () {
return [
'user.options@12s5i',
function ($, jQuery, require, module) {
mw.user.tokens.set({ patrolToken: '+\\', watchToken: '+\\', csrfToken: '+\\' })
},
]
})
})
</script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://reticulum.miraheze.org/wiki/RNode_EEPROM"> <link href="./_mw_/skins.citizen.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.citizen.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.citizen.styles.css" rel="stylesheet" type="text/css"> <script async="" src="./_mw_/startup.js"></script>
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<noscript><link href="./_mw_/noscript.css" rel="stylesheet" type="text/css"/></noscript>
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<script src="./_res_/script.js"></script>
</head>
<body class="mwoffliner-fallback mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-RNode_EEPROM rootpage-RNode_EEPROM skin-citizen action-view skin--responsive">
<div id="content" class="mw-body" role="main">
<a id="top"></a>
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">RNode EEPROM</span></h1>
<div id="bodyContent">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="mw-heading mw-heading1"><h1 id="EEPROM_contents">EEPROM contents</h1></div>
<figure class="mw-default-size" typeof="mw:File/Thumb"><img src="./_assets_/645c0875d8d4af6b8c85c39512036405/Eeprom.png" decoding="async" loading="lazy" width="300" height="186" class="mw-file-element" data-file-width="1000" data-file-height="620"><figcaption></figcaption></figure>
<table class="wikitable">
<tbody><tr>
<th>Address
</th>
<th style="text-align: center;">Bytes
</th>
<th style="text-align: center;">Key
</th>
<th>Description
</th></tr>
<tr>
<td>0x00
</td>
<td style="text-align: center;">
</td>
<td style="text-align: center;">P
</td>
<td>Product
</td></tr>
<tr>
<td>0x01
</td>
<td style="text-align: center;">
</td>
<td style="text-align: center;">M
</td>
<td>Model
</td></tr>
<tr>
<td>0x02
</td>
<td style="text-align: center;">
</td>
<td style="text-align: center;">HR
</td>
<td>Hardware Revision
</td></tr>
<tr>
<td>0x03 - 0x06
</td>
<td style="text-align: center;">4
</td>
<td style="text-align: center;">
</td>
<td>Serial Number
</td></tr>
<tr>
<td>0x07 - 0x0a
</td>
<td style="text-align: center;">4
</td>
<td style="text-align: center;">
</td>
<td>Time of creation
</td></tr>
<tr>
<td>0x0b - 0x1a
</td>
<td style="text-align: center;">16
</td>
<td style="text-align: center;">
</td>
<td>Checksum
</td></tr>
<tr>
<td>0x1b - 0x9a
</td>
<td style="text-align: center;">128
</td>
<td style="text-align: center;">
</td>
<td>Signature
</td></tr>
<tr>
<td>0x9b
</td>
<td style="text-align: center;">
</td>
<td style="text-align: center;">IL
</td>
<td>Info Lock Byte
</td></tr>
<tr>
<td>0x9c
</td>
<td style="text-align: center;">
</td>
<td style="text-align: center;">SF
</td>
<td>Spreading Factor
</td></tr>
<tr>
<td>0x9d
</td>
<td style="text-align: center;">
</td>
<td style="text-align: center;">CR
</td>
<td>Coding Rate
</td></tr>
<tr>
<td>0x9e
</td>
<td style="text-align: center;">
</td>
<td style="text-align: center;">TX
</td>
<td>TX Power
</td></tr>
<tr>
<td>0x9f - 0xa2
</td>
<td style="text-align: center;">4
</td>
<td style="text-align: center;">BW
</td>
<td>Bandwidth
</td></tr>
<tr>
<td>0xa3 - 0xa6
</td>
<td style="text-align: center;">4
</td>
<td style="text-align: center;">Freq
</td>
<td>Frequency
</td></tr>
<tr>
<td>0xa7
</td>
<td style="text-align: center;">
</td>
<td style="text-align: center;">CO
</td>
<td>Configuration OK
</td></tr>
<tr>
<td>0xb0
</td>
<td style="text-align: center;">
</td>
<td style="text-align: center;">BT
</td>
<td>Bluetooth Enable
</td></tr>
<tr>
<td>0xb1
</td>
<td style="text-align: center;">
</td>
<td style="text-align: center;">DS
</td>
<td>Display Set (Hardware Present)
</td></tr>
<tr>
<td>0xb2
</td>
<td style="text-align: center;">
</td>
<td style="text-align: center;">DI
</td>
<td>Display Intensity
</td></tr>
<tr>
<td>0xb3
</td>
<td style="text-align: center;">
</td>
<td style="text-align: center;">DA
</td>
<td>Display Address
</td></tr></tbody></table>
<p>The included checksum is not a firmware checksum, but an MD5 hash of the product, model, hardware revision, serial, and time of creation (0x00 - 0x0a).
</p>
<div class="mw-heading mw-heading1"><h1 id="Writing">Writing</h1></div>
<p>The EEPROM is written not through a flashing utility, but through the RNode itself, making it rather agnostic as to what the hardware is. So long as the firmware is written correctly and the EEPROM contents are well-formed, it should work on all hardware.
</p>
<table class="wikitable">
<tbody><tr>
<th>FEND
</th>
<th>CMD_ROM_WRITE
</th>
<th>ADDRESS
</th>
<th>DATA
</th>
<th>FEND
</th></tr>
<tr>
<td>0x0c
</td>
<td>0x52
</td>
<td><SINGLE_BYTE>
</td>
<td><SINGLE_BYTE>
</td>
<td>0x0c
</td></tr></tbody></table>
<p>The data must be escaped and can be read back via <code>FEND CMD_ROM_READ(0x51) 0x00 FEND</code>.
</p><p><a href="Rnodeconf" title="Rnodeconf">rnodeconf</a> writes the product, model, hardware revision, serial, creation time, checksum, and signature. Additional fields can be used for persistent settings (such as the backlight) or special purposes (the TNC mode settings).
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="RNode" title="RNode">RNode</a></li>
<li><a href="Rnodeconf" title="Rnodeconf">rnodeconf</a></li></ul></div><div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks">Category: <ul><li><a href="Category%3ARNode" title="Category:RNode">RNode</a></li></ul></div></div><!--htdig_noindex--><div><div class="zim-footer">
This page is issued from <a class="external text" title="Last edited on 2026-07-28" href="https://reticulum.miraheze.org/wiki/?title=RNode_EEPROM&oldid=2521">Reticulum Community Wiki</a>. The text is available under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</div>
</body></html>